package bingfa

import (
	"fmt"
	"time"
)

//如果我们起了一个协程，但是这个协程出现了panic，如果我们没有捕获这个panic就会造成整个程序崩溃，这个时候我们可以在goroutine中
//使用recover来捕获panic，进行处理，这样即使这个协程发生了问题，但是主线程依然不受影响，继续执行

func sayHello(){
	for i:=0;i<10;i++{
		fmt.Println("hello")
		time.Sleep(time.Second)
	}
}
func test13(){
	//在这里我们用defer+recover
	defer func() {
		//捕获test抛出的panic
		if err:=recover();err!=nil{
			fmt.Println("test routine is error")
		}
	}()
	//定义一个map
	var myMap2 map[int]string
	myMap2[0]="golang"
}
func Test13(){
	go sayHello()
	go test13()
	for i:=0;i<10;i++{
		fmt.Println("main",i)
		time.Sleep(time.Second)
	}
}
